package com.atguigu.gmall.activity.service;

import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.model.activity.SeckillGoods;
import com.atguigu.gmall.model.activity.UserRecode;

import java.util.List;
import java.util.Map;

/**
 * @Author atguigu-mqx
 * @Description TODO
 * @Date 2023/9/9 9:36
 * @Version 1.0
 */
public interface SeckillGoodsService {
    /**
     * 查询所有秒杀商品列表
     * @return
     */
    List<SeckillGoods> findAll();

    /**
     * 查看秒杀详情
     * @param skuId
     * @return
     */
    SeckillGoods getSeckillGoods(Long skuId);

    /**
     * 预下单接口
     * @param skuId
     * @param userId
     * @param skuIdStr
     * @return
     */
    Result seckillOrder(Long skuId, String userId,String skuIdStr);

    /**
     * 预下单接口
     * @param userRecode
     */
    void seckillUser(UserRecode userRecode);

    /**
     * 减库存
     * @param skuId
     */
    void seckillStock(Long skuId);

    /**
     * 检查秒杀状态
     * @param skuId
     * @param userId
     * @return
     */
    Result checkOrder(Long skuId, String userId);

    /**
     * 秒杀结算页信息汇总
     * @param userId
     * @return
     */
    Map<String, Object> trade(String userId);
}
